//
//  UIImage+Extension.swift
//  swiftWeiBo
//
//  Created by MJT on 16/7/18.
//  Copyright © 2016年 MJT. All rights reserved.
//

import UIKit

extension UIImage {
    /**
    //  截取屏幕快照

    - returns: 返回截取image
    */
     //MARK: 截取屏幕快照
    class func getScreenImage() -> UIImage {
        //获取Window
        let window = UIApplication.sharedApplication().keyWindow!
        //开启图片上下文
        UIGraphicsBeginImageContext(window.size)
        //        <#T##size: CGSize##CGSize#> 截取的尺寸 opaque 是否透明
        //        scale 0 表示屏幕的真是分辨率, 其他数字表示  数字*点的大小
        UIGraphicsBeginImageContextWithOptions(window.size, false, 0)
        //把Window内容渲染到图片上下文
        //  把window内容渲染到图片上下文中 -Hierarchy层次的意思,性能要比drawRect要高
        window.drawViewHierarchyInRect(window.bounds, afterScreenUpdates: false)
        //      从图片上下文中获取图片
        let image = UIGraphicsGetImageFromCurrentImageContext()
        //关闭上下文
        UIGraphicsEndImageContext()
        return image
    }
    //  根据缩放后的宽度计算缩放后的高度
    func imageScaleForScaleWidth(width: CGFloat) -> UIImage {

        let height = width / self.size.width * self.size.height

        let scaleSize = CGSize(width: width, height: height)
        //  开启上下文
        UIGraphicsBeginImageContext(scaleSize)
        self.drawInRect(CGRect(origin: CGPointZero, size: scaleSize))

        let scaleImage = UIGraphicsGetImageFromCurrentImageContext()

        //  结束上下文
        UIGraphicsEndImageContext()
        return scaleImage
        
    }
}